package main

func init() {

}

func bubbleSortAscendingOrder(data []int) []int {
	length := len(data)
	for x := 0; x < length-1; x++ {
		// 提前退出标志
		swapped := false
		for y := 0; y < length-x-1; y++ {
			if data[y] > data[y+1] {
				data[y], data[y+1] = data[y+1], data[y]
				swapped = true
			}
		}
		// 如果一轮遍历中没有发生交换，说明已经有序，提前退出
		if !swapped {
			break
		}
	}
	return data
}

func bubbleSortDescendingOrder(data []int) []int {
	length := len(data)
	for x := 0; x < length-1; x++ {
		// 提前退出标志
		swapped := false
		for y := 0; y < length-x-1; y++ {
			if data[y] < data[y+1] {
				data[y], data[y+1] = data[y+1], data[y]
				swapped = true
			}
		}
		// 如果一轮遍历中没有发生交换，说明已经有序，提前退出
		if !swapped {
			break
		}
	}
	return data
}
